package LeetCode.month01.day30;

import java.util.Arrays;

public class No1658 {
    public static void main(String[] args) {
        System.out.println(minOperations(new int[]{1,1},3));
    }
    public static int minOperations(int[] nums, int x) {
        int sum = 0;
        int n = nums.length;
        for (int i = 0; i < n; i++) {
            sum+=nums[i];
        }
        if(sum<x) return -1;
        int target = sum-x;
        int left = 0;
        int res = Integer.MIN_VALUE;
        for (int i = 0; i < n; i++) {
            target-=nums[i];
            while(target<0){
                target+=nums[left];
                left++;
            }
            if(target==0){
                res = Math.max(res,i-left+1);
            }
        }
        if(res == Integer.MIN_VALUE) return -1;
        return n-res;


//        int n = nums.length;
//        int[] arr = new int[2*n];
//        int left = 0;
//        int res = Integer.MAX_VALUE;
//        for (int i = 0; i < n; i++) {
//            arr[i]=nums[i];
//            arr[n+i]=nums[i];
//        }
//        for (int i = 0; i < 2*n; i++) {
//            x-=arr[i];
//            while(x<0){
//                x+=arr[left];
//                left++;
//            }
//            if(x==0&&i-left<n&&((i>=n-1&&left<n)||left==0)){
//                res = Math.min(res,i-left+1);
//            }
//        }
//        if(res==Integer.MAX_VALUE) return -1;
//        return res;
    }
}
